The present invention relates to method and apparatus for performing address interpolation on a storage medium, such as an optical disk, in which data items and addresses, associated with the data items, are stored.
A prior art address interpolation apparatus is disclosed in Japanese Laid-Open Publication No. 8-111075, for example. FIG. 10 illustrates the configuration of this address interpolation apparatus.
In FIG. 10, an optical disk 201 is a storage medium, in which video, music or information is stored and which is rotationally driven by a spindle motor (not shown). An optical pickup 202 irradiates laser light onto the optical disk 201 and receives its reflected radiation using a photodetector, thereby reading out the information stored in the optical disk 201.
An RF signal processor 203 extracts RF reproduced signal, tracking error signal, focus error signal and so on from the information read out by the optical pickup 202 from the optical disk 201. A demodulator 204 demodulates the RF reproduced signal extracted by the RF signal processor 203. The reproduced signal, demodulated by the demodulator 204, is input to an address decoder 207 and a sync signal detector 205. The sync signal detector 205 separates a sync signal from the reproduced signal. If the sync signal is absent because of the dirt attached onto the optical disk 201, for example, then a sync signal interpolator 206 performs interpolation to obtain a substitute sync signal. Accordingly, sync signals can be obtained at regular intervals without any interruption.
The address decoder 207 performs a cyclic redundancy check (CRC) on addresses contained in the reproduced signal. If any address error has been spotted as a result of the CRC, then the address decoder 207 produces and outputs an address error detection flag. Conversely, if there are no address errors found, then the address decoder 207 outputs the correct addresses as they are. The address error detection flag is produced and output in synchronism with the substitute sync signal, which has been obtained through interpolation by the sync signal interpolator 206. An address interpolator 208 receives addresses or address error detection flags from the address decoder 207. If an address has been supplied from the address decoder 207, then the address interpolator 208 outputs the address as it is. Alternatively, if an address error detection flag has been supplied from the address decoder 207, then the address interpolator 208 produces and outputs an interpolated address. Once the number of times of address interpolation carried out in the address interpolator 208 reaches a predetermined maximum number, address reading is aborted and various types of processing like retry is performed. The maximum number of times address interpolation may be repeatedly performed back to back is defined within a range from 7 to 10, for example. It should be noted that this number of times (in this specification, referred to as a "maximum number of times of address interpolation" or simply "maximum number") is variable with the capacity of an associated memory into which data is stored.
A controller 209 receives the address or interpolated address from the address interpolator 208 and specifies an address in a storage medium (not shown), at which data, associated with the address or interpolated address, should be written.
Although not illustrated in FIG. 10, if any erroneous data items exist among a great number of data items obtained from the reproduced signal, then these erroneous data items are corrected. If such error correction is impossible, then various types of processing like retry is performed.
A conventional address interpolation apparatus like this, however, has the following problems. An address error might happen because of the dirt attached onto the surface of the disk. But another address error might happen because a servo system has lost its control due to some reason to miss the address of the target (in this specification, such a condition will be called a "servo failure"). Although an address error could happen because of any of these two different reasons, the conventional address interpolation apparatus always performs the address interpolation the same number of times, because the maximum number of times of address interpolation is fixed in the apparatus. That is to say, the address interpolation is performed regardless of whether the error results from the dirty surface of the disk or the servo failure.
Accordingly, if the address interpolation is performed the maximum number of times to correct the address error resulting from the dirty surface of the disk, then retry processing is carried out, even though no servo failure has happened. If the optical disk is partitioned into a plurality of sectors, then the same group of sectors as that read out during a series of operations is read out again. However, these sectors are located under the same dirty surface and are less likely to be read out correctly. Thus, it is highly probable that the retry processing is repeated many times. In such a situation where this processing is repeated numerous times in vain, data cannot be reproduced smoothly enough from an optical disk that often causes read errors. Accordingly, the resultant performance in reproducing data from such a disk is far from satisfactory.
On the other hand, if an address error has happened because the target address was missed due to a servo failure, then retry processing won't be started until the address interpolation has been repeatedly performed the maximum number of times. Accordingly, the retry processing cannot be performed in time and the reproducing speed adversely decreases.